﻿namespace Grow.Domain.EventBus.Cap.PublisherDomainEvents
{
    public interface IPublisherDomainEventService
    {
        Task<bool> LockPublisherEventAsync(Guid Id, CancellationToken cancellationToken);

        Task UpdatePublisherEventAsync(Guid Id, PublisherDomainEventStatus publisherDomainEventStatus, CancellationToken cancellationToken);

        Task ExpirerPublisherDomainEventAsync(CancellationToken cancellationToken);

        Task<List<PublisherDomainEventDto>> GetPublisherDomainEventsOfNeedRetryAsync(CancellationToken cancellationToken);
    }
}
